package PrzestrzenDyskretna;

import java.util.List;

import Narzedzia.ListaElementow;
import Zbiory.Element;

public class SumaDyskretnyZbiorRozmyty extends DyskretnyZbiorRozmyty {

	public SumaDyskretnyZbiorRozmyty(List<DyskretnyZbiorRozmyty> listaZbiorow) {
		super(nowaPrzestrzen(listaZbiorow), noweElementy(listaZbiorow));
	}

	public SumaDyskretnyZbiorRozmyty(DyskretnyZbiorRozmyty zbior1, DyskretnyZbiorRozmyty zbior2) {
		this(nowaListaZbiorow(zbior1, zbior2));
	}

	private static ListaElementow<Element> noweElementy(List<DyskretnyZbiorRozmyty> listaZbiorow) {
		ListaElementow<Element> elementy = new ListaElementow<Element>();
		for (DyskretnyZbiorRozmyty dyskretnyZbiorRozmyty : listaZbiorow) {
			for (Element element : dyskretnyZbiorRozmyty.getElementy()) {
				if (elementy.contains(element)) {
					for (Element elem : elementy) {
						if (elem.compareTo(element) == 0) {
							if(elem.getPrzynaleznosc() < element.getPrzynaleznosc()){
								elementy.remove(elem);
								elementy.add(element);
							}
							break;
						}
					}
				} else {
					elementy.add(new Element(element));
				}
			}
		}
		return elementy;
	}

}
